var dialog_cadastro_denuncia;
var currentMarker;
var mapa;
/**
 * Encontra a posição do usuário
 * @returns {undefined}
 */
function findMe() {
    navigator.geolocation.getCurrentPosition(
            function(position) {
                var map = mapa.getMap(),
                        latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
                map.setCenter(latlng);
                var marker = new google.maps.Marker({
                    position: latlng
                });
                marker.setMap(map);
            },
            function(error) {
                alert(error.message);
            },
            {
                enableHighAccuracy: true
            });
}

function verificaCadastroDenuncia() {
    $('#principal\\:detalheDenuncia').val('');
    dialog_cadastro_denuncia.hide();
    currentMarker = null;
}

/**
 * Evento disparado no momento que é clicado no mapa e adiciona marcador da denuncia no mapa
 * @param {type} event
 * @returns {undefined}
 */
function adicionaMarcador(event) {
    $('#principal\\:latitude').val(event.latLng.lat());
    $('#principal\\:longitude').val(event.latLng.lng());
    geocoder = new google.maps.Geocoder();
    geocoder.geocode({'latLng': event.latLng}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {           
           // mapa.setCenter(results[0].geometry.location);   
           $('#principal\\:localizacao').text(results[0].formatted_address);
        }
    });
    currentMarker = new google.maps.Marker({
        position: new google.maps.LatLng(event.latLng.lat(), event.latLng.lng())
    });
    currentMarker.setTitle($('#principal\\:detalheDenuncia').val());
    mapa.addOverlay(currentMarker);
    dialog_cadastro_denuncia.show();
}

/**
 * Fecha form da denuncia e limpa os valores 
 * @returns {Boolean}
 */
function fecharFormDenuncia() {
    $('#principal\\:detalheDenuncia').val('');
    dialog_cadastro_denuncia.hide();
    currentMarker.setMap(null);
    currentMarker = null;
    return false;
}